1. Technical Field
This invention generally relates to data processing, and more specifically relates to detection of resources in a logically partitioned computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources to different computing environments. The iSeries computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an iSeries computer system is desired, partition manager code (referred to as a “hypervisor” in iSeries terminology) is installed that allows defining different computing environments on the same platform. Once the partition manager is installed, logical partitions may be created that define different computing environments. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A computer system that includes multiple logical partitions typically shares resources between the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined that allocate 50% of the CPU to each partition, that allocate 33% of the memory to the first partition and 67% of the memory to the second partition, and that allocate two different I/O slots to the two logical partitions, one per partition. Once logical partitions are defined and shared resources are allocated to the logical partitions, each logical partition acts as a separate computer system. Thus, in the example above that has a single computer system with two logical partitions, the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
One problem with known logically partitioned computer systems occurs when the computer system initially powers up. The computer system may include multiple physical enclosures coupled together with cables or other interconnection mechanisms. A prior art method 200 is shown in FIG. 2. Method 200 begins upon initial system power on (step 210). The partition manager is initialized (step 220). The partition manager then waits for a preset delay period to expire (step 230). This delay period is necessary to give all of the resources in all of the physical enclosures sufficient time to power up and/or be initialized. Once the delay period expires in step 230, the logical partitions are started (step 240).
Prior art method 200 suffers from several drawbacks. First, the delay period in step 230 is typically selected to be long enough to allow all of the resources to be powered up and properly initialized. As a result, all logical partitions must wait until all resources for all logical partitions are ready before any logical partition may be started. The result is potentially long delays (on the order of minutes) in starting logical partitions after the computer system is powered on, because all logical partitions are delayed from starting for the worst case delay of all resources. A second drawback occurs when resources power on at non-deterministic delays, which could result from temporary disconnection or “offline for service” conditions. In this case, there may be one or more resources that are still unavailable even after the preset delay period expires. As a result, the logical partitions may be started in step 240 even though some have missing resources, possibly leading to those partitions being unable to boot (if the boot device is not powered or initialized at that time) or crashing when they discover the missing resources. Without a way to autonomically detect resources in a logically partitioned computer system, the computer industry will continue to suffer from the drawbacks in the prior art, discussed above.